using System;
using System.Collections.Generic;
using System.Text;
using GarageGames.Torque.T2D;
using Xyne.Utilities;
using Microsoft.Xna.Framework.Net;

namespace Xyne.Templates.BattleEffects
{
    public abstract class BattleEffect : T2DAnimatedSprite
    {
        public enum BattleEffectType
        {
            SplatterEffect = 0,
            RepeatBurnEffect,
            ThrownFireballEffect,
            RepeatBlizzardEffect,
            ThrownPhoenixEffect,
            ThrownTsunamiEffect,
            RepeatHealingRainEffect,
            RepeatFloodEffect
        };

        public delegate void BattleEffectOver(BattleEffect battleEffect);

        private Guid _battleEffectID;
        private BattleEffectType _type;

        public Guid BattleEffectID
        {
            get
            {
                return _battleEffectID;
            }

            set
            {
                _battleEffectID = value;
            }
        }

        public BattleEffectType EffectType
        {
            get
            {
                return _type;
            }

            set
            {
                _type = value;
            }
        }

        public virtual void StartEffect()
        {
            SetAnimationFrame(0);
            ResumeAnimation();
        }

        public abstract void Serialize(PacketWriter writer);

    }
}
